package com.ruoyi.manage.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工考勤记录对象 att_attendance
 * 
 * @author cf
 * @date 2025-06-03
 */
public class AttAttendance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 员工ID */
    @Excel(name = "员工ID")
    private Long staffId;

    /** 上午上班时间（格式：HH:mm） */
    @Excel(name = "上午上班时间",defaultValue = "未打卡" ,dateFormat = "HH:mm")
    private Date morStartTime;

    /** 上午下班时间（格式：HH:mm） */
    @Excel(name = "上午下班时间",defaultValue = "未打卡",dateFormat = "HH:mm")
    private Date morEndTime;

    /** 下午上班时间（格式：HH:mm） */
    @Excel(name = "下午上班时间",defaultValue = "未打卡",dateFormat = "HH:mm")
    private Date aftStartTime;

    /** 下午下班时间（格式：HH:mm） */
    @Excel(name = "下午下班时间",defaultValue = "未打卡",dateFormat = "HH:mm")
    private Date aftEndTime;

    /** 考勤日期（格式：yyyy-MM-dd） */
    @Excel(name = "考勤日期",dateFormat = "yyyy-MM-dd")
    private Date attendanceDate;

    /** 考勤状态：0正常，1迟到，2早退，3旷工，4休假 */
    @Excel(name = "考勤状态", readConverterExp = "1=正常,2=迟到,3=早退,4=旷工,5=休假,6=未知")
    private Integer attendanceStatus;

    /** 逻辑删除：0未删除，1已删除 */
    private Integer isDeleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStaffId(Long staffId) 
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setMorStartTime(Date morStartTime) 
    {
        this.morStartTime = morStartTime;
    }

    public Date getMorStartTime() 
    {
        return morStartTime;
    }
    public void setMorEndTime(Date morEndTime) 
    {
        this.morEndTime = morEndTime;
    }

    public Date getMorEndTime() 
    {
        return morEndTime;
    }
    public void setAftStartTime(Date aftStartTime) 
    {
        this.aftStartTime = aftStartTime;
    }

    public Date getAftStartTime() 
    {
        return aftStartTime;
    }
    public void setAftEndTime(Date aftEndTime) 
    {
        this.aftEndTime = aftEndTime;
    }

    public Date getAftEndTime() 
    {
        return aftEndTime;
    }
    public void setAttendanceDate(Date attendanceDate) 
    {
        this.attendanceDate = attendanceDate;
    }

    public Date getAttendanceDate() 
    {
        return attendanceDate;
    }
    public void setAttendanceStatus(Integer attendanceStatus) 
    {
        this.attendanceStatus = attendanceStatus;
    }

    public Integer getAttendanceStatus() 
    {
        return attendanceStatus;
    }
    public void setIsDeleted(Integer isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted() 
    {
        return isDeleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("staffId", getStaffId())
            .append("morStartTime", getMorStartTime())
            .append("morEndTime", getMorEndTime())
            .append("aftStartTime", getAftStartTime())
            .append("aftEndTime", getAftEndTime())
            .append("attendanceDate", getAttendanceDate())
            .append("attendanceStatus", getAttendanceStatus())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("isDeleted", getIsDeleted())
            .toString();
    }
}
